package com.nys.conci.base.convertidor;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.FacesConverter;

/**
 * Clase convertidora, encargada de la conversion a tipo java.util.Date, de los componentes
 * de JSF.
 * 
 * @author Adam M. Gamboa Gonzalez
 */
@FacesConverter(value="DateConverter")
public class DateConverter implements javax.faces.convert.Converter{
    

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        Date fecha = null;
        String patron_parametro  = (String) component.getAttributes().get("patron");
        String patron_date = patron_parametro == null ? "dd/MM/yyyy" : patron_parametro;
        
        try{
            DateFormat formateador = new SimpleDateFormat(patron_date);
            fecha = (Date)formateador.parse(value);  
        }catch(ParseException ex){
            
        }
        return fecha;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        String fecha_string;
        String patron_parametro  = (String) component.getAttributes().get("patron");
        String patron_date = patron_parametro == null ? "dd/MM/yyyy" : patron_parametro;
        
        DateFormat formateador = new SimpleDateFormat(patron_date);
        fecha_string = formateador.format(value); 
        
        return fecha_string;
    }
    
}
